/**
* Copyright (c) 2005-2011 by Appcelerator, Inc. All Rights Reserved.
* Licensed under the terms of the Eclipse Public License (EPL).
* Please see the license.txt included with this distribution for details.
* Any modifications to this file must keep this entire header intact.
*/
/*
* Created on May 21, 2006
*/
package com.python.pydev.refactoring.actions;
import java.util.ListResourceBundle;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jface.text.IDocument;
import org.python.pydev.editor.IPyEditListener;
import org.python.pydev.editor.PyEdit;
import com.python.pydev.refactoring.ui.findreplace.PySearchInOpenDocumentsAction;
public class ActionCreatorPyEditListener implements IPyEditListener {
public void onSave(PyEdit edit, IProgressMonitor monitor) {
}
public void onCreateActions(ListResourceBundle resources, PyEdit edit, IProgressMonitor monitor) {
edit.addOfflineActionListener("r", new PyRenameInFileAction(edit), "Rename occurrences in file", false);
edit.addOfflineActionListener("s", new PySearchInOpenDocumentsAction(edit), "Search in open documents", true);
// Experimental code for creating a class derived of a class that's not public! -- depends on javassist.
// try {
// ClassLoader classLoader = IEditorStatusLine.class.getClassLoader();
// ProtectionDomain protectionDomain = IEditorStatusLine.class.getProtectionDomain();
//
//
// ClassPool pool = ClassPool.getDefault();
// pool.insertClassPath(new ClassClassPath(this.getClass()));
// final CtClass ctClassNew = pool.makeClass("org.eclipse.ui.texteditor.PydevFindReplaceDialog");
//
// CtClass ctClassOriginal = pool.get("org.eclipse.ui.texteditor.FindReplaceDialog");
// ctClassNew.setModifiers(Modifier.PUBLIC);
// ctClassNew.setSuperclass(ctClassOriginal);
//
// CtMethod afterCreateContents = CtNewMethod.make(
// "public void createContents(org.eclipse.swt.widgets.Composite parent){" +
// "super.createContents(parent);" +
// "System.out.println(\"test\");" +
// "}", ctClassNew);
// ctClassNew.addMethod(afterCreateContents);
// final Class class1 = ctClassNew.toClass(classLoader, protectionDomain);
// RunInUiThread.async(new Runnable() {
//
// public void run() {
// Object newInstance;
// try {
// newInstance = class1.getConstructor(Shell.class).newInstance(PyAction.getShell());
// System.out.println(newInstance);
// } catch (Throwable e) {
// e.printStackTrace();
// }
// }
// });
// } catch (Exception e) {
// e.printStackTrace();//ignored
// }
// Removed because the way the action was done is not really maintainable.
//
// // -------------------------------------------------------------------------------------
// // Find/Replace
// FindReplaceAction action = new FindReplaceAction(resources, "Editor.FindReplace.", edit);
// action.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_FIND_AND_REPLACE);
// action.setId("org.python.pydev.editor.actions.findAndReplace");
// edit.setAction(ITextEditorActionConstants.FIND, action);
}
public void onDispose(PyEdit edit, IProgressMonitor monitor) {
}
public void onSetDocument(IDocument document, PyEdit edit, IProgressMonitor monitor) {
}
}